package com.bestcem.xm.common.core.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * 请求错误枚举，错误码必须落于1~99之间，包含1和99
 * <p>
 * 处理诸如：AccessToken缺失或不存在、请求签名错误、请求参数不足、...等请求错误。
 *
 * @author ympan <yuming.pan@idiaoyan.com>
 * @version v3.0
 * @date 2021/8/17 17:40
 */
@Getter
@AllArgsConstructor
public enum ReqErrorCodeEnum implements CommonErrorEnum {

    NOT_FOUND(1, "资源不存在"),

    /**
     * Token缺失
     */
    TOKEN_LOST(2, "Token缺失"),

    /**
     * 签名错误
     */
    SIGN_ERROR(3, "签名错误"),

    /**
     * 参数缺失
     */
    PARAM_LOST(4, "参数缺失"),

    /**
     * 参数格式错误
     */
    PARAM_FORMAT(5, "参数格式错误"),

    /**
     * 无效Token
     */
    INVALID_TOKEN(6, "无效Token"),

    /**
     * 参数超出合法范围
     */
    PARAM_RANGE(7, "参数超出合法范围"),

    /**
     * 无效的时间戳
     */
    INVALID_TS(8, "无效的时间戳"),

    /**
     * 无效的图片格式
     */
    IMAGE_FORMAT(9, "无效的图片格式"),

    /**
     * 无效的邮箱设置
     */
    INVALID_EMAIL(10, "无效的邮箱设置"),

    /**
     * 禁用参数
     */
    PARAM_FORBIDEN(11, "禁用参数"),

    /**
     * 参数解密失败
     */
    PARAM_DECRYPT_ERROR(12, "参数解密失败"),

    /**
     * 导出异常
     */
    EXPORT_ERROR(13, "导出异常"),

    /**
     * xss异常
     */
    XSS_ERROR(14, "xss异常"),

    /**
     * 参数类型错误
     */
    PARAM_TYPE_ERROR(15, "参数类型错误"),
    /**
     * 模板详情失败
     */
    TEMPLATE_NOT_EXIST(16, "获取模板失败"),

    /**
     * 获取概述错误
     */
    NOTIFY_ERROR(17, "获取概述错误"),

    /**
     * 保存草稿批次有重复
     */
    NOTIFY_REPEAT(18, "保存批次重复"),
    /**
     * 服务器错误
     */
    SERVER_ERROR(19, "服务器错误"),
    /**
     * 邮件服务器不可用
     */
    EMAIL_SERVER_DISABLED(20, "邮件服务器不可用");

    private int code;
    private String msg;

    @Override
    public int getCode() {
        return code;
    }

    @Override
    public String getMsg() {
        return msg;
    }
}
